home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Presentations / Presentations ’88 / Feldt Advanced Mac Programming / Serial Port / termdemo.pas < prev   
Pascal/Delphi Source File  |  1992-06-28  |  2KB  |  40 lines

  1. PROGRAM TermDemo; 
  2.  
  3.  VAR 
  4.     Event : EventRecord;                { event record structure instance    }     whatHappened : EventStuff;        { event detail structure instance    }     appleMenu,fileMenu,editMenu : MenuHandle;  { handles for std menus    }     PortA : SerialPort;                { serial port data structure    } 
  5.     wPtr : WindowPtr;    
  6.     termPtr : TermData^;
  7.  
  8. BEGIN
  9.      XTCommInit;                    { init Toolbox managers, Extender    } 
  10.     termPtr := CrtTermWindow(Nil);        { create term window and record    }
  11.     InitSPort(@PortA,'A');                { open and init modem serial port    }
  12.  
  13.     PortA.baud := baud1200;            {1200baud transmission rate    }
  14.     PortA.parity := noparity;            {set character parity to none    }
  15.     PortA.stopbits := stop20;            {set to 2 stopbits per character    }
  16.     PortA.databits := data8;            {set to 8 databits per character    }
  17.     SetSPort(@PortA);                {set modem port to above values    }
  18.  
  19.     PortA.inbufsize := 2048;            {set input buffer to 1024 bytes (1K)    }
  20.     PortA.in := NewPointer(Ord4(2048));    {set address of input buffer    }
  21.     PortA.outbufsize := 0;                {leave output buffer untouched    }
  22.     SetBufSPort(@PortA);            {set modem port to above values    }
  23.  
  24.     termPtr^.commPort:= @PortA;        {link term window and modem port    }
  25.     wPtr := termPtr^.commWindow;        {save term WindowPtr for later use    }
  26.     ShowWindow(wPtr);                {make term window visible, active    }
  27.  
  28.     REPEAT
  29.          REPEAT
  30.             CheckPort(termPtr);        { check for chars arriving at port    }
  31.             SystemTask;            { slice of cpu time for DAs    }        UNTIL GetNextEvent(everyEvent,Event);       { until event occurs     }
  32.  
  33.          HandleEvent(Event,whatHappened);
  34.  
  35.      UNTIL ExitRequest(whatHappened);
  36.     KillWindow(wPtr);                { remove window & data structures    }
  37.     ResetSPort(@PortA);                { release serial port driver    } 
  38. END. 
  39.  
  40.